Error correcting decoding apparatus for decoding low-density parity-check codes

ABSTRACT

A decoder  5  applies decode processing to N input data in parallel to generate K decode data. An S/P converter  6  outputs N input data applied in series to decoder  5  through first lines L 1 -L 64  dividedly over several times. A P/S converter  7  receives through second lines R 1 -R 60  the K decode data from decoder  5  dividedly over several times to output in series the K decoded data to an external source.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to error correcting decoding apparatuses,particularly, an error correcting decoding apparatus for decodinglow-density parity-check codes.

2. Description of the Background Art

In creating a signal communication system, high speed communication, lowpower consumption, high communication quality (low bit error rate) andthe like are required. The error correcting technique of detecting andcorrecting an error in reception codes is widely employed as oneapproach satisfying the aforementioned requirements in wireless, wired,and recording systems or the like.

In recent years, low-density parity-check (LDPC) codes and thesum-product decoding method are attracting attention as one approach inassociation with such error correcting technique. The decoding operationutilizing such LDPC codes is discussed in Non-Patent Document 1 of Chunget al. (S. Y. Chung et al., “On the Design of Low-Density Parity-CheckCodes within 0.0045 dB of the Shannon Limit” IEEE COMMUNICATIONSLETTERS, VOL. 5, No. 2, Feb. 2001, pp. 58-60). This Non-Patent Document1 teaches that decoding characteristics within 0.04 dB of the Shannonlimit in the white Gaussian channel can be achieved utilizing irregularLDPC codes at the code rate of 1/2. Irregular LDPC codes refer to codeshaving a row weight (the number of 1s in a row) and a column weight (thenumber of 1s in a column) in a parity check matrix that are notconstant. LDPC codes having a constant row weight and column weight ineach row and each column are referred to as regular LDPC codes.

Although Non-Patent Document 1 shows mathematical algorithm of decodingLDPC codes according to the sum-product decoding method, there is noteaching of a specific circuit configuration to carry out the massivecalculation.

Non-Patent Document 2 of Yeo et al. (E. Yea et al., “VLSI Architecturesfor Iterative Decoders in Magnetic Recording Channels” IEEE Trans.Magnetics, Vol. 37, No. 2, March 2001, pp. 748-755) provides a study onthe circuit configuration of a decoding apparatus for LDPC codes.Non-Patent Document 2 teaches MAP (maximum a posteriori probability)algorithm defined on the trellis, i.e. BCJR algorithm, as the posterioriprobability of the information symbol based on the reception series. Theiteration in the forward direction and backward direction in the trellisis calculated for each state, and the posteriori probability is obtainedbased on the iteration values in the forward direction and backwarddirection. This calculation is carried out using add-compare-select-addunits. A circuit is configured to generate a check matrix according tothe sum-product decoding method for LDPC codes, and an estimate value iscalculated using values from different check nodes.

Non-Patent Document 3 (Tadashi Wadayama, “Low-Density Parity-Check Codesand Decoding Method Thereof”, TECHNICAL REPORT OF IEICE, MR2001-83,December, 2001) illustrates LDPC codes and the sum-product decodingmethod, as well as the min-sum decoding method in the log domain.Non-Patent Document 3 shows that processing according to the f functionof Gallager can be implemented by just the four basic operations ofaddition, minimize, positive/negative determination andpositive/negative sign.

The aforementioned Non-Patent Document 2 and Non-Patent Document 3disclose, in order to generate a parity check matrix to calculate aprimary estimate word, a process including the steps of updating anexternal value log ratio α using the f function of Gallager according tothe sum-product method, and then calculating the priori value log ratioβ of the symbol based on the external value log ratio. Therefore,calculation of the Gallager function is time consuming and the circuitscale becomes larger.

The aforementioned Non-Patent Document 3 shows that the circuitconfiguration in implementation can be simplified in a short period oftime by employing the min-sum decoding method that is a simplifiedversion of the sum-product decoding method.

Moreover, specific methods of implementing the min-sum decoding methodare disclosed in, for example, Patent Document 1 (Japanese PatentLaying-Open No. 2007-323515 and Patent Document 2 (Japanese PatentLaying-Open No. 2007-335992). These documents disclose a configurationin which a decoder performs parallel-processing on input data in unitsof code length to output decode data.

In order to apply the input data to a decoder that performsparallel-processing in such units of code length, a possibleconfiguration is to convert the serial input data into parallel data ofthe code length, and then provide the data to the decoder through signallines corresponding to the code length. However, the number of signallines will become significant in such a configuration if the code lengthis long.

Another possible configuration is to apply input data of the code lengthserially into the decoder through one signal line. However, the timerequired for applying the data to the decoder will be increased in sucha configuration.

A similar possible approach is to output decode data of the decodelength serially in order to output decode data from the decoder to anexternal source. However, the time required for output from the decoderis time consuming in accordance with such a configuration.

There is also possible a configuration in which decode data of thedecode length are output in parallel, and then output to an externalsource through signal lines of the decode length, followed by convertingthe parallel data of the decode length into serial data at an externalsource. However, this configuration is disadvantageous in that thenumber of signal lines required will be significant if the decode lengthis long.

SUMMARY OF THE INVENTION

In view of the foregoing, an object of the present invention is toprovide an error correcting decoding apparatus adjusted such that thenumber of signal lines for input to a decoder is not significantlyincreased and the input rate to the decoder is not significantlyreduced. Another object is to provide an error correcting decodingapparatus adjusted such that the number of signal lines for output froma decoder is not significantly increased, and the output rate of thedecoder is not significantly reduced.

An error correcting decoding apparatus according to a first aspect ofthe present invention is directed to an error correcting decodingapparatus for performing decoding in units of code length N, including adecoder applying decode processing to N input data in parallel, aserial-parallel conversion circuit providing N input data applied inseries to the decoder dividedly over several times, and B1 (B1 is anatural number of at least 2 and less than N) first lines connecting theserial-parallel conversion circuit with the decoder, one input databeing transmitted through each first line.

Preferably, the serial-parallel conversion circuit includes a firststorage unit for storing N input data. The first storage unit outputsthe stored N input data to the decoder dividedly over several timesthrough the first lines.

Preferably, the first storage unit includes B1 dual port memories, eachhaving one input and one output. The serial-parallel conversion circuitincludes a switch for switching between any of the B1 dual port memoriesinto which N input data applied in series are to be stored. The B1 dualport memories and the B1 first lines are connected in a one-to-onecorrespondence.

Preferably, the first storage unit includes B1 dual port memories, eachhaving one input and one output. Each dual port memory stores induplication N input data applied in series. The B1 dual port memoriesand the B1 first lines are connected in a one-to-one correspondence.Each dual port memory outputs data among the N input data, differingfrom each other.

Preferably, B1 is a common divisor of N.

The error correcting decoding apparatus according to the first aspect ofthe present invention is directed to an error correcting decodingapparatus for performing decoding in units of decode length K. The errorcorrecting decoding apparatus includes a decoder applying decodeprocessing to input data in parallel to generate K decode data, aparallel-serial conversion circuit receiving K decode data from thedecoder dividedly over several times to output K decoded data in seriesto an external source, and B2 (B2 is a natural number of at least 2 andless than K) second lines connecting the decoder with theparallel-serial conversion circuit.

Preferably, the parallel-serial conversion circuit includes a secondstorage unit storing K decode data. The second storage unit receives theK decode data from the decoder dividedly over several times through thesecond lines.

Preferably, the second storage unit includes B2 dual port memories, eachhaving one input and one output. The parallel-serial conversion circuitfurther includes a second switch for switching between any of the B2dual port memories from which data is to be output. The B2 dual portmemories and the B2 second lines are connected in a one-to-onecorrespondence.

Preferably, B2 is a common divisor of K.

According to an aspect of the present invention, there can be realizedan error correcting decoding apparatus adjusted such that the number ofsignal lines for input to the decoder is not increased significantly,and the input rate to the decoder is not reduced significantly.

According to another aspect of the present invention, there can berealized an error correcting decoding apparatus adjusted such that thenumber of signal lines for output from the decoder is not increasedsignificantly, and the output rate from the decoder is not reducedsignificantly.

The above and other objects, features, aspects, and advantages of thepresent invention will become apparent from the detailed description ofthe present invention in association with the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 represents an example of a configuration of a communicationsystem employing an error correcting decoding apparatus according to anembodiment of the present invention.

FIG. 2 represents a list of the corresponding relationship between theoutput data of a modulator and a demodulator when optical fiberconstitutes the communication channel.

FIG. 3 represents a configuration of a decoder according to anembodiment of the present invention.

FIG. 4 represents a configuration of the m-th (m=1 to 6) row processorof FIG. 3.

FIG. 5 is a flowchart representing the operation procedure of an errorcorrecting decoding apparatus according to an embodiment of the presentinvention.

FIG. 6 is a diagram to describe data transfer between an S/P converterand a first register in a decoder according to a first embodiment of thepresent invention.

FIG. 7 is a diagram to describe data transfer between a second registerin the decoder and a P/S converter according to the first embodiment ofthe present invention.

FIG. 8 is a diagram to describe data transfer between an S/P converterand a first register in a decoder according to a second embodiment ofthe present invention.

FIG. 9 is a diagram to describe data transfer between a second registerin the decoder and a P/S converter according to the second embodiment ofthe present invention.

FIG. 10 is a diagram to describe data transfer between an S/P converterand a first register in a decoder according to a third embodiment of thepresent invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment

FIG. 1 represents an example of a configuration of a communicationsystem employing an error correcting decoding apparatus according to anembodiment of the present invention.

Referring to FIG. 1, the communication system includes, at thetransmission side, an encoder 1 adding a redundant bit for errorcorrection to transmission information to generate a transmission code,and a modulator 2 modulating the code of (K+M) (=N) bits from encoder 1according to a predetermined scheme for output onto a communicationchannel 3.

Encoder 1 adds M bits that are redundant bits for parity computation tothe information bit of K bits to generate LDPC codes (low-densityparity-check codes) of (K+M) (=N) bits. In a parity check matrix H, therow corresponds to redundant bits, whereas the column corresponds tocode bits. Here, N corresponds to the code length.

Modulator 2 carries out modulation such as amplitude modulation, phasemodulation, code modulation, frequency modulation, orthogonalfrequency-division multiplexing modulation, or the like according to theconfiguration of communication channel 3. For example, in the case whereoptical fiber constitutes communication channel 3, light intensitymodulation (one type of amplitude modulation) is carried out bymodifying the brightness of the laser diode according to thetransmission information bit value at modulator 2. For example, when thetransmission data bit is “0”, the emission intensity of this laser diodeis increased to be transmitted as “+1”. When the transmission data bitis “1”, the emission intensity of the laser diode is lowered andconverted into “−1” to be transmitted.

At the reception side, there are provided a demodulator 4 demodulating ademodulation signal transmitted through communication channel 3 todemodulate digital codes of (K+M) bits, and an error correcting decodingapparatus 100 applying a parity check matrix operation processing to thecodes of (K+M) bits from demodulator 4 to reproduce the formerinformation of K bits.

Demodulator 4 carries out demodulation processing according to thetransmission mode of communication channel 3. For example, in the caseof amplitude modulation, phase modulation, code modulation, frequencymodulation, orthogonal frequency-division multiplexing modulation andthe like, demodulator 4 carries out the relevant processing of amplitudedemodulation, phase demodulation, code demodulation, frequencydemodulation, and the like. Demodulator 4 includes a demodulationcircuit 4 a demodulating a signal applied from communication channel 3,and an A/D converter 4 b converting an analog demodulation signalgenerated by demodulation circuit 4 a into a digital signal. Output dataXn from A/D converter 4 b is generally data of L values (L≧2).

FIG. 2 represents a list of the corresponding relationship between theoutput data from modulator 2 and demodulator 4 in the case where opticalfiber constitutes communication channel 3. Referring to FIG. 2corresponding to optical fiber constituting communication channel 3,modulator 2 increases and decreases the emission intensity of the laserdiode directed to transmission (light emitting diode) when thetransmission data is “0” and “1”, respectively, to output “1” and “−1”,respectively, for transmission, as mentioned above.

By the transmission loss and the like at communication channel 3, thelight intensity transmitted to demodulator 4 has an analog intensitydistribution from the highest intensity to the lowest intensity.Demodulator 4 applies quantization processing (analog/digitalconversion) to the input light signal to detect the light receptionlevel. In FIG. 2, the light reception level of 8 steps indicates thereception signal intensity when quantization is applied. Specifically,the light reception level of “7” implies that the emission intensity isvery high. The light reception level of “0” implies that the lightintensity is very low. Each light reception level is set correspondingto signed data and output from demodulator 4. Demodulator 4 provides theoutput of data “3” when the light reception level is “7”, and data “−4”when the light reception level is “0”. Therefore, a multi-levelquantized signal is output from demodulator 4 with respect to areception signal of 1 bit. In FIG. 2, 3-bit data quantized at 8 levelsis generated at demodulator 4.

Error correcting decoding apparatus 100 is directed to carry outdecoding in units of code length N and decode length K, and includes anS/P converter 6, a decoder 5, a P/S converter 7, first signal linesL1-L64 connecting S/P converter 6 with decoder 5, and second signallines R1-R60 connecting decoder 5 with P/S converter 7.

S/P converter 6 converts the N reception information (each constituting3-bit data) Xn serially output from A/D converter 4 b into parallel datadividedly over several times for output to decoder 5 through firstsignal lines L1-L64.

Each of first signal lines L1-L64 transmits one reception information(each constituting 3-bit data).

Decoder 5 receives the N reception information Xn sent from S/Pconverter 6 to apply an LDPC parity check matrix according to themin-sum decoding method to restore the information to the former K bits.Decoder 5 performs decode processing in parallel on the N receptioninformation Xn to generate a decode word of K bits.

Each of second signal lines R1-R60 transmits 1 bit of a decode word.

P/S converter 7 receives in parallel the decode word of K bits fromdecoder 5 dividedly over several times through second signal linesR1-R60 to output a decode word of K bits in series.

FIG. 3 represents a configuration of a decoder according to anembodiment of the present invention. FIG. 3 represents the configurationin the case where a parity check matrix H having a column weight of 3that is the number of “1”s in each column with a code length N of 1024and an information bit length K of 960.

Referring to FIG. 3, decoder 5 includes a first register 8 storing dataoutput from S/P converter 6, likelihood calculators 10-1 to 10-Ncalculating the log-likelihood ratio of N data in first register 8, arow processor 34 performing processing on a row in a parity checkmatrix, a column processor 35 performing processing on a column in theparity check matrix, a decode word generator 14 generating a decode wordaccording to a log-likelihood ratio λn from likelihood calculators 10-1to 10-N and the output bit (external value log ratio) αmn of rowprocessor 34, and a second register 9 to store the generated decodeword.

(First Register)

First register 8 is connected to S/P converter 6 via first signal linesL1-L64. First register 8 receives the N reception information Xn fromS/P converter 6 through first signal lines L1-L64 dividedly over severaltimes to store N reception information Xn.

(Likelihood Calculator)

Likelihood calculators 10-1 to 10-N generate a log-likelihood ratio λn,independent of the noise information of the reception signal. Generallywhen noise information is taken into account, this log-likelihood ratioλn is given by Xn/(2×σ²), where a represents the noise variance. In theembodiment of the present invention, likelihood calculators 10-1 to 10-Nare constituted of buffer circuits or constant multiplication circuits.The log-likelihood ratio λn is given by Xn×f, where f is a positivenumber of nonzero. By calculating the log-likelihood ratio withoututilizing the noise information, the circuit configuration as well asthe calculation process is simplified. In the min-sum decoding method,linearity is maintained in the signal processing since computation iscarried out using the minimum value in the process of the check matrix.Therefore, the processing of normalizing output data according to noiseinformation is not required.

(Row Processor and Column Processor)

Row processor 34 performs row processing for each member in a row ofparity check matrix H according to equation (1) to update external valuelog ratio αmn.

Column processor 35 performs column processing for each member in acolumn of parity check matrix H to update priori value log ratio βmnaccording to equation (2).

$\begin{matrix}{\alpha_{mn} = ( {\prod\limits_{n^{\prime} \in {{A{(m)}}\backslash \; n}}\; {{{sign}( {\lambda_{n^{\prime}} + \beta_{{mn}^{\prime}}} )} \times {\min\limits_{n^{\prime} \in {{A{(m)}}\backslash \; n}}{{\lambda_{n^{\prime}} + \beta_{{mn}^{\prime}}}}}}} )} & (1)\end{matrix}$

β_(mn): initial value is 0

$\begin{matrix}{\beta_{mn} = {\sum\limits_{m^{\prime} \in {{B{(n)}}\backslash \; m}}\; \alpha_{m^{\prime}n}}} & (2)\end{matrix}$

where n′εA(m)\n and m′εB(n)\m imply a member beside itself in each ofequations (1) and (2). For external value log ratio αmn, n′≠n. Forpriori value log ratio βmn, m′≠m. The subscript “mn” indicating theposition in the row and column of α and β, generally indicated in lowersubscript, are indicated as common horizontally aligned characters forthe sake of easiness in reading.

Function sign (x) is defined by the following equation (3).

$\begin{matrix}{{{sign}(x)} = \{ \begin{matrix}1 & {x \geqq 0} \\{- 1} & {x < 0}\end{matrix} } & (3)\end{matrix}$

A set A (m) and a set B (n) are subsets of a set [1, N]={1, 2, . . . ,N} when two dimensional M·N matrix H=[Hmn] is taken as the LDPC codeparity matrix subject to decoding.

-   -   A(m)={n:Hmn=1}    -   B(n)={m:Hmn=1}

A specific configuration of row processor 34 and column processor 35will be described hereinafter.

Row processor 34 includes a first block row processor 18, a second blockrow processor 19, a third block row processor 20, a first adder (β+λ) 15arranged corresponding to first block row processor 18, a second adder(β+λ) 16 arranged corresponding to second block row processor 19, and athird adder (β+λ) 17 arranged corresponding to third block row processor20.

First block row processor 18 includes a first block (β+λ) storage unit27 storing the latest value of (β+λ) of N columns corresponding to thefirst block in parity check matrix H, a first row processor 28-1, and asecond row processor 28-2.

Second block row processor 19 includes a second block (β+λ) storage unit30 storing the latest value of (β+λ) of N columns corresponding to thesecond block in parity check matrix H, a third row processor 28-3, and afourth row processor 28-4.

Third block row processor 19 includes a third block (β+λ) storage unit33 storing the latest value of (β+λ) of N columns corresponding to thethird block in parity check matrix H, a fifth row processor 28-5 and asixth row processor 28-6.

Column processor 35 includes a first block (β) storage unit 24 storingthe latest value of (β) of N columns corresponding to the first block inparity check matrix H, a second block (β) storage unit 25 storing thelatest value of (β) of N columns corresponding to the second block inparity check matrix H, a third block (β) storage unit 26 storing thelatest value of (β) of N columns corresponding to the third block inparity check matrix H, a first adder (β) 21 arranged corresponding tofirst block (β) storage unit 24, a second adder (β) 22 arrangedcorresponding to second block (β) storage unit 25, and a third adder(13) 23 arranged corresponding to third block (β) storage unit 26.

First adder (β+λ) 15, second adder (β+λ) 16, third adder (β+λ) 17, firstadder (β) 21, second adder (β) 22 and third adder (β) 23 have N adderscorresponding to the N columns. Each adder performs adding for eachcorresponding column.

The operation of each element in row processor 34 and column processor35 is described in detail in Japanese Patent Laying-Open No.2007-325011, for example.

(M-th Row Processor)

FIG. 4 represents a configuration of the m-th (m=1-6) processor shown inFIG. 3.

Referring to FIG. 4, the m-th processor 28-m includes a bit separator36, a sign calculator 37, an absolute value calculator 38, and a codemultiplier 39.

Bit separator 36 receives S signals {(λn′+βmn′): n′ is one of Sdifferent numbers satisfying Hmn′=1} for separation into a plurality ofbits representing the absolute value thereof and a bit representing thesign (that is, the most significant bit) to output an absolute valueformed of absolute value bits to absolute value absolute valuecalculator 38 and a sign formed of a sign bit to sign calculator 37. Asused herein, S is the row weight.

Sign calculator 37 performs calculation of the sign section (set as Smn)in equation (1) based on S signals {sgn (λn′+βmn′): n′ is one of Sdifferent numbers satisfying Hmn′=1}.

Absolute value calculator 38 performs calculation of the absolute valuesection (set as Rmn) in equation (1) based on S signals {|λn′+βmn′|:n′is one of S different numbers, satisfying Hmn′=1}.

Code multiplier 39 outputs an external value log ratio αmn based on Smnoutput from sign calculator 37 as the sign bit and Rmn output fromabsolute value calculator 38 as the absolute value bit.

(Decode Word Generator)

Decode word generator 14 includes an adder 29, an MSB extractor 31, anda decode word determinator 32.

Adder 29 adds log-likelihood ratio λn and external value log ratio αmnaccording to equation (4) to calculate an estimate reception signal Qn.

$\begin{matrix}{Q_{n} = {\lambda_{n} + {\sum\limits_{m \in {B{(n)}}}\; \alpha_{mn}}}} & (4)\end{matrix}$

MSB extractor 31 extracts the most significant bit of estimate receptionsignal Qn as a primary estimate sign Cn, according to equation (5).

$\begin{matrix}{C_{n} = \{ \begin{matrix}{0,} & {{signQ}_{n} = 1} \\{1,} & {{signQ}_{n} = {- 1}}\end{matrix} } & (5)\end{matrix}$

Decode word determinator 32 includes a multiplier and an adder toidentify whether primary estimate code word (C₁, C₂, . . . , C_(N))constitutes a code word, i.e. whether it is appropriate as a decodeword. Decode word determinator 32 causes row processor 34 and columnprocessor 35 to end the iterative operation and outputs code word (C₁,C₂, . . . , C_(k)) as the decode word, when equation (6) is established,i.e. when the syndrome satisfies “0”. Further, decode word determinator32 also causes row processor 34 and column processor 35 to end theiterative operation and outputs code word (C₁, C₂, . . . , C_(k)) as thedecode word to second register 9, when the iterative count of the rowprocessing and column processing operations exceeds a predeterminedvalue. Here, K corresponds to the decode length.

(C ₁ ,C ₂ , . . . C _(N))·H ^(t)=0  (6)

(Second Register)

Second register 9 stores the decode word of K bits generated at decodeword generator 14.

Second register 9 is connected with P/S converter 7 via second signallines R1-R60. Second register 9 outputs the decode word of K bits to P/Sconverter 7 dividedly over several times through second signal linesR1-R60.

(Operation of Error Correcting Decoding Apparatus)

FIG. 5 is a flowchart representing the operation procedure of the errorcorrecting decoding apparatus according to an embodiment of the presentinvention.

Referring to FIG. 5, S/P converter 6 converts the N receptioninformation (each constituting 3-bit data) Xn output in series from A/Dconverter 4 b into parallel data dividedly over several times for outputto decoder 5 through first signal lines L1-L64 (step S0).

Then, as the initial operation, decoder 5 initializes the loop count andthe priori value log ratio βmn. This loop count indicates the iterativeoperation of the column processing and row processing. A maximum valueis deter wined in advance for this loop count. Priori value log ratioβmn is initialized to “0” (step 1).

Then, likelihood calculator 10-n (n=1 to N) calculates thelog-likelihood ratio λn of each reception information Xn (step S2).

Row processor 34 performs row processing on each member in a row inparity check matrix H according to equation (1) to update external valuelog ratio αmn (step S3).

Column processor 35 performs column processing on each member in acolumn in parity check matrix H according to equation (2) to updatepriori value log ratio βmn (step S4).

Decode word generator 14 uses log-likelihood ratio λn and external valuelog ratio αmn to obtain estimate reception signal Q_(n) according toequation (4) (step S5).

Then, decode word generator 14 calculates primary estimate sign C_(n)from estimate reception signal Q_(n) according to equation (5) (stepS6).

Decode word generator 14 performs a parity check for identifying whetherthe primary estimate code word (C₁, C₂, . . . , C_(N)) constitutes acode word, i.e. whether it is appropriate as a decode word, according toequation (6).

When equation (6) is established, i.e. when the syndrome satisfies “0”(YES at step S7), decode word generator 14 causes row processor 34 andcolumn processor 35 to end the iterative operation, and outputs codeword (C₁, C₂, . . . , C_(k)) as decode word C (=(C₁, C₂, . . . , C_(k)))(step S10).

When equation (6) is not established (NO at step S7), and the loop countreaches the maximum value (YES at step S8), decode word generator 14causes row processor 34 and column processor 35 to end the iterativeoperation, and outputs code word (C₁, C₂, . . . , C_(k)) as decode wordC (=(C₁, C₂, . . . , C_(k))) (step S10).

Then, P/S converter 7 receives the decode word of K bits from decoder 5dividedly over several times in parallel through second signal linesR1-R60 to output the K bits of the decode word in series (step S11).

When equation (6) is not established (NO at step S7), and the loop counthas not yet reached the maximum value (NO at step S8), decode wordgenerator 14 increments the loop count just by 1 (step S9), and returnsto step S3 to repeat the process.

(S/P Converter)

FIG. 6 is a diagram to describe data transfer between S/P converter 6and first register 8 in decoder 5 according to the first embodiment ofthe present invention.

Referring to FIG. 6, S/P converter 6 includes a first switch SWA, and afirst storage unit 110. First storage unit 110 includes 64 dual portmemories DPA1-DPA64.

Each of dual port memories DPA1-DPA64 has a capacity of 3×16 bits tostore 64 3-bit data. Each of dual port memories DPA1-DPA64 is connectedto first signal lines L1-L64 in a one-to-one correspondence.

First, data transfer from A/D converter 4 b to dual port memoriesDPA1-DPA64 will be described hereinafter.

First switch SW1 switches the storage destination of the serial data,each of 3 bits, output from A/D converter 4 b in units of 64 data.Specifically, first switch SWA sequentially outputs the 1st data to 16thdata from A/D converter 4 b to dual port memory DPA1. Then, first switchSWA sequentially outputs the 17th to 32nd data from A/D converter 4 b todual port memory DPA2. Hereinafter, in a similar manner, first switchSWA sequentially outputs the last 1009th data to 1024th data from A/Dconverter 4 b to dual port memory DPA64.

As a result, the 1st data to 16th data are sequentially stored in dualport memory DPA1 from the beginning. The 17th to 32nd data aresequentially stored in dual port memory DPA2 from the beginning.Hereinafter, in a similar manner, the 1009th data to 1024th data aresequentially stored in dual port memory DPA64 from the beginning.

Data transfer from dual port memories DPA11-DPA64 to first register 8will be described hereinafter.

64 data will be transferred at one time from dual port memoriesDPA1-DPA64 to first register 8 through first signal lines L1-L64.

At the first pass, the data stored in the head position in each of dualport memories DPA1-DPA64 is output in parallel to first register 8through first signal lines L1-L64. Specifically, the first data storedin the head position in dual port memory DPA1 is transmitted to thefirst storage position in first register 8 through first signal line L1.The 17th data stored in the head position in dual port memory DPA2 istransmitted to the 17th storage position in first register 8 throughfirst signal line L2. Hereinafter, in a similar manner, the 1009th datastored in the head position in dual port memory DPA64 is transmitted tothe 1009th storage position in first register 8 through first signalline L64.

At the second pass, the data stored in the second position from thebeginning in each of dual port memories DPA1-DPA64 is output to firstregister 8 through first signal lines L1-L64 in parallel. Specifically,the second data stored in the second position from the beginning in dualport memory DPA1 is transmitted to the second storage position in firstregister 8 through first signal line L1. The 18th data stored in thesecond position from the beginning in dual port memory DPA2 istransmitted to the 18th storage position in the first register 8 throughfirst signal line L2. Hereinafter, in a similar manner, the 1010th datastored in the second position from the beginning in dual port memoryDPA64 is transmitted to the 1010th storage position in first register 8through first signal line L64.

Thus, in a similar manner, the 1024 data stored in dual port memoriesDPA1-DPA64 are transmitted dividedly over 16 times to first register 8.64 data at a time.

(P/S Converter)

FIG. 7 is a diagram to describe data transfer between second register 9in decoder 5 and P/S converter 7 according to the first embodiment ofthe present invention.

Referring to FIG. 7, P/S converter 7 includes a second storage unit 120and a second switch SWB. Second storage unit 120 includes 60 dual portmemories DPB1-DPB60.

Each of dual port memories DPB1-DPB60 has a capacity of 1×16 bits tostore sixteen 1-bit data. Dual port memories DPB1-DPB60 are connected tosecond signal lines R1-R60 in a one-to-one correspondence.

Data transfer from second register 9 to dual port memories DPB1-DPB60will be described hereinafter.

60 data will be transferred at one time from second register 9 to dualport memories DPB1-DPB60 through second signal lines R1-R60.

At the first pass, the first data stored in second register 9 is outputto the head storage position in dual port memory DPB1 through secondsignal line R1. At the same time, the 17th data stored in secondregister 9 is output to the head storage position in dual port memoryDPB2 through second signal line R2. Hereinafter, at the same time in asimilar manner, the 945th data stored in second register 9 is output tothe head storage position in dual port memory DPB60 through secondsignal line R60.

At the second pass, the second data stored in second register 9 isoutput to the second storage position from the beginning in dual portmemory DPB1 through second signal line R1. At the same time, the 18thdata stored in second register 9 is output to the second storageposition from the beginning in dual port memory DPB2 through secondsignal line R2. Hereinafter, at the same time in a similar manner, the946th data stored in second register 9 is output to the second storageposition from the beginning in dual port memory DPB60 through secondsignal line R60.

In a similar manner hereinafter, the 960 data stored in second register9 are transmitted dividedly over 16 times to dual port memoriesDPB1-DPB60, 60 data at a time.

Data transfer from dual port memories DPB1-DPB60 to an external sourcewill be described hereinafter.

Second switch SWB switches between any of dual port memories DPB1-DPB60for output of every 16 data. Specifically, second switch SWB firstswitches the input source to dual port memory DPB1 to sequentiallyoutput the 1st data to 16th data stored in dual port memory DPB1. Then,second switch SWB switches the input source to dual port memory DPB2 tosequentially output the 17th to 32nd data stored in dual port memoryDPB2. Hereinafter, in a similar manner, second switch SWB finallyswitches the input source to dual port memory DPB60 to sequentiallyoutput the 945th to 960th data stored in dual port memory DPB60.

Thus, according to the error correcting decoding apparatus in theembodiment of the present invention, the number of signal lines from theS/P converter to the decoder is set to 64 for the code length of 1024,allowing 64 data to be transferred in parallel over 16 times from theS/P converter to the decoder, 64 data at a time. Therefore, transfer canbe achieved speedily although the number of signal lines will beincreased, as compared to the case where all 1024 data are transferredin series, and the number of signal lines can be reduced although thetransfer rate will be reduced, as compared to the case where all the1024 data are transferred in parallel.

Similarly, according to the error correcting decoding apparatus of thepresent embodiment, the number of signal lines for transmission from thedecoder to the P/S converter is set to 60 for the decode length of 960,allowing data to be transferred in parallel over 16 times from thedecoder to the P/S converter, 60 data at a time. Therefore, high speedtransfer is allowed although the number of signal lines will beincreased, as compared to the case where all 960 data are transferred inseries, and the number of signal lines can be reduced although thetransfer rate will be reduced, as compared to the case where all 960data are transferred in parallel.

By such a configuration, an appropriate configuration balanced in therequirement of reducing the number of signal lines and the requirementof increasing the transfer speed can be realized.

Second Embodiment S/P Converter

FIG. 8 is a diagram to describe data transfer between S/P converter 6 aand first register 8 in decoder 5 according to a second embodiment ofthe present invention.

Referring to FIG. 8, S/P converter 6 a includes a first switch SWA, anda first storage unit 110. First storage unit 110 includes 64 dual portmemories DPA1-DPA64.

Each of dual port memories DPA1-DPA64 has a capacity of 3×16 bits tostore 64 3-bit data. Each of dual port memories DPA1-DPA64 is connectedto first signal lines L1-L64 in a one-to-one correspondence.

First, data transfer from A/D converter 4 b to dual port memoriesDPA1-DPA64 will be described hereinafter.

First switch SW1 switches the storage destination of the serial data,each of 3 bits, output from A/D converter 4 b, one data at a time.Specifically, first switch SWA outputs the first data from A/D converter4 b to the head position in dual port memory DPA1. Then, first switchSWA outputs the second data from A/D converter 4 b to the head positionin dual port memory DPA2. Hereinafter, in a similar manner, first switchSWA outputs the 64th data from A/D converter 4 b to the head position indual port memory DPA64.

Furthermore, first switch SWA outputs the 65th data from A/D converter 4b to the second position from the beginning in dual port memory DPA1.Then, first switch SWA outputs the 66th data from A/D converter 4 b tothe second position from the beginning in dual port memory DPA2.Hereinafter, in a similar manner, first switch SWA outputs the 128thdata from A/D converter 4 b to the second position from the beginning indual port memory DPA64.

By repeating the above-described process, the 1st, 65th, 961st data aresequentially stored in dual port memory DPA1 from the beginning. In dualport memory DPA2, the 2nd, 66th, . . . , 962nd data are sequentiallystored in dual port memory DPA2 from the beginning. Hereinafter, in asimilar manner, the 64th, 128th, . . . , 1024th data are sequentiallystored in dual port memory DPA64 from the beginning.

Data transfer from dual port memories DPA11-DPA64 to first register 8will be described hereinafter.

64 data will be transferred at one time from dual port memoriesDPA1-DPA64 to first register 8 through first signal lines L1-L64.

At the first pass, the data stored in the head position in each of dualport memories DPA1-DPA64 is output in parallel to first register 8through first signal lines L1-L64. Specifically, the first data storedin the head position in dual port memory DPA1 is transmitted to thefirst storage position in first register 8 through first signal line L1.At the same time, the second data stored in the head position in dualport memory DPA2 is transmitted to the second storage position in firstregister 8 through first signal line L2. Hereinafter, at the same timein a similar manner, the 64th data stored in the head position in dualport memory DPA64 is transmitted to the 64th storage position in firstregister 8 through first signal line L64.

At the second pass, the data stored in the second position from thebeginning in each of dual port memories DPA1-DPA64 is output to firstregister 8 through first signal lines L1-L64 in parallel. Specifically,the 65th data stored in the second position from the beginning in dualport memory DPA1 is transmitted to the 65th storage position in firstregister 8 through first signal line L1. At the same time, the 66th datastored in the second position from the beginning in dual port memoryDPA2 is transmitted to the 66th storage position in the first register 8through first signal line L2. Hereinafter, at the same time in a similarmanner, the 128th data stored in the second position from the beginningin dual port memory DPA64 is transmitted to the 128th storage positionin first register 8 through first signal line L64.

Hereinafter, in a similar manner, the 1024 data stored in dual portmemories DPA1-DPA64 are transmitted dividedly over 16 times to firstregister 8, 64 data at a time.

(P/S Converter)

FIG. 9 is a diagram to describe data transfer between second register 9in decoder 5 and P/S converter 7 a according to the second embodiment.

Referring to FIG. 7, P/S converter 7 a includes a second storage unit120, and a second switch SWB. Second storage unit 120 includes 60 dualport memories DPB1-DPB60.

Each of dual port memories DPB1-DPB60 has a capacity of 1×16 bits tostore sixteen 1-bit data. Each of dual port memories DPB1-DPB60 isconnected to second signal lines R1-R60 in a one-to-one correspondence.

First, data transfer from second register 9 to dual port memoriesDPB1-DPB60 will be described.

60 data will be transferred at one time from second register 9 to dualport memories DPB1-DPB60 through second signal lines R1-R60.

At the first pass, the first data stored in second register 9 is outputto the head storage position in dual port memory DPB1 through secondsignal line R1. At the same time, the second data stored in secondregister 9 is output to the head storage position in dual port memoryDPB2 through second signal line R2. Hereinafter, at the same time in asimilar manner, the 60th data stored in second register 9 is output tothe head storage position in dual port memory DPB60 through secondsignal line R60.

At the second pass, the 61st data stored in second register 9 is outputto the second storage position from the beginning in dual port memoryDPB1 through second signal line R1. At the same time, the 62nd datastored in second register 9 is output to the second storage positionfrom the beginning in dual port memory DPB2 through second signal lineR2. Hereinafter, at the same time in a similar manner, the 120th datastored in second register 9 is output to the second storage positionfrom the beginning in dual port memory DPB60 through second signal lineR60.

In a similar manner hereinafter, the 960 data stored in second register9 are transmitted dividedly over 16 times to dual port memoriesDPB1-DPB60, 60 data at a time.

Data transfer from dual port memories DPB1-DPB60 to an external sourcewill be described hereinafter.

Second switch SWB switches between any of dual port memories DPB1-DPB60for the output of every 1 data. Specifically, second switch SWB firstswitches the input source to dual port memory DPB1 to output the firstdata stored in the head position in dual port memory DPB1. Then, secondswitch SWB switches the input source to dual port memory DPB2 to outputthe second data stored in the head position in dual port memory DPB2.Hereinafter, in a similar manner, second switch SWB switches the inputsource to dual port memory DPB60 to output the 60th data stored in thehead position in dual port memory DPB60.

Furthermore, second switch SWB switches the input source to dual portmemory DPB1 to output the 61st data stored in the second position fromthe beginning in dual port memory DPB1. Then, second switch SWB switchesthe input source to dual port memory DPB2 to output the 62nd data storedin the second position from the beginning in dual port memory DPB2.Hereinafter, in a similar manner, second switch SWB switches the inputsource to dual port memory DPB60 to output the 120th data stored in thesecond position from the beginning in dual port memory DPB60.

By repeating the process set forth above, the 1st to 1024th data storedin dual port memories DPB1-DPB60 are sequentially output in series.

Likewise with the first embodiment, an appropriate configurationbalanced in the requirement of reducing the number of signal lines andthe requirement of increasing the speed of the transfer rate can berealized in the present embodiment.

Third Embodiment S/P Converter

FIG. 10 is a diagram to describe data transfer between an S/P converter6 b and first register 8 in decoder 5 according to a third embodiment ofthe present invention.

Referring to FIG. 10, S/P converter 6 b includes a first storage unit130. First storage unit 130 includes 64 dual port memories DPC1-DPC64.

Each of dual port memories DPC1-DPC64 has a capacity of 3×1024 bits tostore 1024 3-bit data. Data is read out from a specified address fromeach of dual port memories DPC1-DPC64. Each of dual port memoriesDPC1-DPC64 is connected to first signal lines L1-L64 in a one-to-onecorrespondence.

First, data transfer from A/D converter 4 b to dual port memoriesDPC1-DPC64 will be described.

The first data from A/D converter 4 b is output to the head position indual port memories DPC1-DPC64. Then, the second data from A/D converter4 b is output to the second position from the beginning in dual portmemories DPC1-DPC64. Hereinafter, in a similar manner, the last 1024thdata from A/D converter 4 b is output to the 1024th position from thebeginning in dual port memories DPC1-DPC64.

As a result, the 1st to 1024th data are stored in duplicationsequentially from the beginning in dual port memories DPC1-DPC64.

Data transfer from dual port memories DPC1-DPC64 to first register 8will be described hereinafter.

64 data differing from each other are transferred in parallel in onepass from dual port memories DPC1-DPC64 to first register 8 throughfirst signal lines L1-L64.

At the first pass, the head position in dual port memory DPC1 isaddressed, and the first data stored therein is transmitted to the firststorage position in first register 8 through first signal line L1. Atthe same time, the second position from the beginning in dual portmemory DPC2 is addressed, and the second data stored therein istransmitted to the second storage position in first register 8 throughfirst signal line L2. Hereinafter, at the same time in a similar manner,the 64th position from the beginning in dual port memory DPC64 isaddressed, and the 64th data stored therein is transmitted to the 64thstorage position in first register 8 through first signal line L64.

At the second pass, the 65th position from the beginning in dual portmemory DPC1 is addressed, and the 65th data stored therein istransmitted to the 65th storage position in first register 8 throughfirst signal line L1. At the same time, the 66th position from thebeginning in dual port memory DPC2 is addressed, and the 66th datastored therein is transmitted to the 66th storage position in firstregister 8 through first signal line L2. Hereinafter, at the same timein a similar manner, the 128th position stored at the 128th positionfrom the beginning in dual port memory DPC64 is addressed, and the 128thdata stored therein is transmitted to the 128th storage position infirst register 8 through first signal line L64.

Similarly, 1024 data differing from each other and stored in dual portmemories DPC1-DPC64 are transmitted dividedly over 16 times to firstregister 8, 64 data at a time.

Likewise with the first embodiment, an appropriate configurationbalanced in the requirement of reducing the number of signal lines andthe requirement of increasing the transfer speed can be realized in thepresent embodiment. By being dispensed with first switch SWA, thetechnical requirement related to high speed operation of first switchSWA can be avoided.

(Modification)

The present invention is not limited to the above-described embodiments,and may include a modification set forth below, for example.

(1) Number of Signal Lines and Transfer Count

In the present embodiment of the present invention, the S/P converterand the decoder are connected through 64 first signal lines. 1024 datacorresponding to the code length of 1024 are transferred dividedly over16 times from the S/P converter to the decoder, 64 data at a time.However, data transfer is not limited thereto. For example, when thecode length is N, the number of first signal lines may be set as B1 thatis a common divisor of N to transfer data over N/B1 (times). B1 is anatural number of at least 2 and less than N. By selecting a commondivisor of the code length for the number of the first signal lines, theprocessing content at each pass is set in common, simplifying theprocessing algorithm.

Alternatively, a number that is not a common divisor of N may beselected for the number of first signal lines, and the data transfer ofthe last pass may be carried out using only a portion of the firstsignal lines.

Similarly, in the embodiments of the present invention, the decoder andP/S converter are connected through 60 second signal lines. 960 datacorresponding to the decode length of 960 are transferred from thedecoder to the P/S converter dividedly over 16 times, 60 parallel dataat a time. However, data transfer is not limited thereto. For example,when the decode length is K, the number of second signal lines may beset at B2 that is a common divisor of K to transfer data over K/B2(times). B2 is a natural number of at least 2 and less than K. Byselecting a common divisor of the decode length for the number of thesecond signal lines, the processing content at each pass is set incommon, simplifying the processing algorithm.

Alternatively, a number that is not a common divisor of K may beselected for the number of second signal lines, and the data transfer ofthe last pass may be carried out using only a portion of the secondsignal lines.

(2) First Storage Unit, Second Storage Unit

The first storage unit in the first and second embodiments of thepresent invention includes, but not limited to, a first switch SWAswitching between 64 output destinations, and 64 dual port memoriesDPA1-DPA64, each having one input and one output. For example, the firststorage unit may include a third switch SWC switching between 32 outputdestinations, and include 32 memories DPD1-DPD32, each having 2 inputsand 2 outputs.

Furthermore, the second storage unit in the first and second embodimentsof the present invention includes, but not limited to, a second switchSWB switching between 60 output destinations, and 60 dual port memoriesDPB1-DPB62, each having one input and one output. For example, thesecond storage unit may include a fourth switch SWD switching between 30input destinations, and include 30 memories DPE1-DPE30, each having 2inputs and 2 outputs.

(3) Likelihood Calculator

The embodiments of the present invention include, but not limited to, Nlikelihood calculators 10-1 to 10-N provided at the succeeding stage ofthe S/P converter. One likelihood calculator may be provided at thepreceding stage of the S/P converter.

(4) Number of Bits of Each Input Data and Each Output Data of Decoder

The embodiments of the present invention have, but not limited to, dataof 3 bits (multiple level data) input to the decoder and data of one bit(binary data) output from the decoder.

For example, in the case where data of 1 bit (binary data) is to beinput to the decoder, data of 1 bit is to be transferred through eachfirst signal line. Similarly, in the case where data of 3 bits (multiplelevel data) is to be output from the decoder, the data of 3 bits is tobe transferred through each second signal line.

Although the present invention has been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the scopeof the present invention being interpreted only by the terms of theappended claims.

1. (canceled)
 10. An error correcting decoding apparatus for performingdecoding of low-density-parity-check (LDPC) code in units of code lengthN, comprising: a first storage unit for storing N input data, the Ninput data being LDPC code; a decoder for decoding the N input data byapplying LDPC matrix to the N input data; and B1 first lines connectingthe first storage unit with the decoder, where B1 is a natural number ofat least 2 and less than N, wherein: the first storage unit provides thestored N input data to the decoder through the B1 first lines dividedlyover several times, a parallel number of input data provided in eachtime is up to B1, and the decoder decodes the N input data, which areprovided from the first storage unit, in parallel.
 11. The errorcorrecting decoding apparatus according to claim 10, wherein: the firststorage unit includes B1 dual port memories, each having one input andone output, the B1 dual port memories store the N input data, and the B1port memories and the B1 first lines are connected in a one-to-onecorrespondence.
 12. The error correcting decoding apparatus according toclaim 10, wherein: the first storage unit includes B1 dual portmemories, each having one input and one output, each dual port memorystores in duplication the N input data, the B1 dual port memories andthe B1 first lines are connected in a one-to-one correspondence, andeach dual port memory outputs data among the N input data, differingfrom each other.
 13. The error correcting decoding apparatus accordingto claim 10, wherein B1 is a common divisor of N.
 14. A method ofreceiving input data by a decoder included in an error correctingdecoding apparatus, the method comprising: receiving, by the decoder,the N input data through B1 first lines dividedly over several times,the N input data being low-density-parity-check (LDPC) code, wherein:the decoder is configured to decode the N input data in parallel byapplying LDPC matrix to the N input data, the B1 first lines areconnected to the decoder, the decoder receives the input data throughthe B1 first lines, B1 is a natural number of at least 2 and less thenN, and a parallel number of input data received in each time is up toB1.
 15. An error correcting decoding apparatus for performing decodingof low-density-parity-check (LDPC) code in units of decode length K,comprising: a decoder for decoding input data in parallel to generate Kdecode data by applying LDPC matrix to the input data, the input databeing LDPC code; a second storage unit for storing the K decode data;and B2 second lines connecting the decoder with the second storage unit,where B2 is a natural number of at least 2 and less then K, wherein: thedecoder outputs the K decode data to the second storage unit through theB2 second lines dividedly over several times, a parallel number ofdecode data outputted in each time is up to B2, and the second storageunit stores the K decode data received from the decoder dividedly overseveral times.
 16. The error correcting decoding apparatus according toclaim 15, wherein: the second storage unit includes B2 dual portmemories, each having one input and one output, the B2 dual portmemories store the K decode data, and the B2 dual port memories and theB2 second lines are connected in a one-to-one correspondence.
 17. Theerror correcting decoding apparatus according to claim 15, wherein B2 isa common divisor of K.
 18. A method of outputting decoded data by adecoder included in an error correcting decoding apparatus, the methodcomprising: outputting, by the decoder, K decode data through B2 secondlines dividedly over several times, wherein the decoder is configured todecode input data in parallel to generate the K decode data by applyinglow-density-parity-check (LDPC) matrix to the input data, the B2 secondlines are connected to the decoder, the decoder outputs the decode datathrough the B2 second lines, and B2 is a natural number of at least 2and less than K, and a parallel number of decode data outputted in eachtime is up to B2.